#!/usr/bin/python
# -*- encoding=UTF-8 -*_
import os

# 给定一个数组，每个元素出现二次，找到其中只出现一次的元素
# 要求：时间复杂度是线性算法，空间复杂度为O(1）
#(1) 桶标记/计数，给每个元素分一个桶，出现一次标记1次 速度快，线性时间，但不适用大量数据，非常占内存
#(2) 异或操作，当相同元素异或为0，不同元素异或为1，0^A=A 异或操作具有交换性

class SingelNumber(object):
	"""docstring for singelNumber"""
	# def __init__(self, arg):
	# 	super(SingelNumber, self).__init__()
	# 	self.arg = arg

	def singelNumber(self,nums):
		length = len(nums)
		if (length == 0 ):
			return ""

		temp = nums[0]
		if (length > 1):
			for x in nums[1:length]:
				temp = temp^x

		return temp

if __name__ == '__main__':
	ob = SingelNumber()
	# nums = [1,3,3,4,4,6,7,1,7]
	nums = [1]
	print ob.singelNumber(nums)